package meter

import (
	"context"

	"github.com/gogf/gf/v2/frame/g"
)

// EleResetRequest represents the request parameters for electrical meter reset API
// EleResetRequest 表示电表重置API的请求参数
type EleResetRequest struct {
	Address   string `json:"address" v:"required"` // 设备列表的address
	CID       string `json:"cid" v:"required"`     // 设备列表的cid
	AccountId string `json:"accountId"`            // 账户ID
}

// EleResetResponse represents the complete response from electrical meter reset API
// EleResetResponse 表示电表重置API的完整响应
type EleResetResponse struct {
	Code          int    `json:"code"`          // 响应状态码
	Message       string `json:"message"`       // 响应消息
	ResetTime     string `json:"resetTime"`     // 重置时间
	AccountStatus string `json:"accountStatus"` // 账户状态
	Success       bool   `json:"success"`       // 操作是否成功
}

// Validate validates the EleResetRequest parameters using GoFrame validation
// Validate 使用GoFrame验证EleResetRequest参数
func (r *EleResetRequest) Validate() error {
	// First validate the struct fields using GoFrame
	if err := g.Validator().Data(r).Run(context.Background()); err != nil {
		return err
	}

	// Additional validation logic can be added here if needed
	return nil
}
